package interfaceDAO;

import domain.User;

public interface IDAOUser {

	/**
	 * Ajout un nouvel utilisateur.
	 * 
	 * @param first_name
	 *            Prénom.
	 * @param last_name
	 *            Nom
	 * @param pseudo
	 *            Pseudo (unique pour tous les utilisateurs).
	 * @param password
	 *            Mot de passe.
	 * @param address
	 *            Addresse.
	 * @param mailAddress
	 *            Addresse mail (unique pour tous les utilisateurs).
	 * @return Le nouvel utilisateur.
	 */
	public User addUser(String first_name, String last_name, String pseudo,
			String password, String address, String mailAddress);

	/**
	 * Vérifie si un utilisateur existe.
	 * 
	 * @param email
	 *            Adrese mail de l'utilisateur.
	 * @param password
	 *            Mot de passe de m'utilisateur.
	 * @return <tt>true</tt> s'il existe un utilisateur avec mail/mot de passe,
	 *         <tt>false</tt> sinon.
	 */
	public Boolean isUser(String email, String password);

	/**
	 * Supprime un utilisateur.
	 * 
	 * @param pseudo
	 *            Le pseudo de l'utilisateur.
	 * @return <tt>true</tt> si tout la suppression est effective,
	 *         <tt>false</tt> sinon.
	 */
	public Boolean deleteUser(String pseudo);

	/**
	 * Récupère un utilisateue à partir de son pseudo.
	 * 
	 * @param pseudo
	 *            Le pseudo de l'utilisateur.
	 * @return L'utilisateur correspondant ou <tt>null</tt> si le pseudo
	 *         n'existe pas.
	 */
	public User getUser(String pseudo);

}